operator class
Operator class determines certain aspects of how operators behave.

class 1
Class 1 operators include binary logical operators && , ^^ , ||.

The operands must be integer or floating point variables or expressions. The result is always XLONG $$TRUE or $$FALSE.

class 2
Class 2 operators include the binary relational operators = , <> , < , <= , >= , > and their equivalents == , != , !>= , !> , !< , !<= .

The operands must be integer, floating point, or string. If one operand is a string, so must the other. String characters are compared until a byte differs or the end of one string is reached, so the effect is alphabetic comparison. The result is always XLONG $$TRUE or $$FALSE.

class 3
Class 3 operators include binary bitwise operators AND , XOR , OR , and symbolic equivalents & , ^ , | .

The operands must be integer variables or expressions. The result is the operand data type.

class 4
Class 4 operators include binary arithmetic operators + , - , * , / , ** .

The operands must be integer or floating point variables or expressions. The result is the data type of the highest type operand.

class 5
Class 5 operators include the binary arithmetic operator + and the string concatenate operator + .

The operands must both be integer or floating point variables or expressions, or both be string variables or expressions. The result is the operand data type.

class 6
Class 6 operators include the binary arithmetic operators MOD and \.

The operands must be integer or floating point variables or expressions.  If either operand is GIANT, the other operand is converted to GIANT and the result is GIANT.   Otherwise, if either operand is XLONG, the other operand is converted to XLONG and the result is XLONG.  Otherwise, if either operand is ULONG, the other operand is converted to ULONG and the result is ULONG.  Otherwise, both operands are converted to SLONG and the result is SLONG.  Note that this means that SINGLE and DOUBLE operands are converted to one integer type or another before the operation takes place.   Class 6 operators are integer operators.

class 7
Class 7 operators include the binary arithmetic and bitwise shift operators <<, >>, <<<, >>>.

The operands must be integer variables or expressions.  The result is the data type of the left operand.